方格四角穿过等值线时为什么有时需要额外连接规则:独立观察第26例
用四角数值画一条零等值线时,普通格子往往只有两个边界交点;正负值交替分布时却会出现四个交点,仅凭交点位置无法唯一决定连接方式。
四角依次为左上、右上、右下、左下,边编号按同样顺序绕行。正负异号的边按线性插值找到零点。两个交点直接相连;四个交点时,本例约定四角平均值非负就把中心视为正,否则视为负,并围住与中心符号相反的角。
输入与计算记录
每行四个角值按左上、右上、右下、左下排列。交点记录为边编号对应的横纵坐标,连接用两端边编号表示。
四角值 | 中心平均 | 各边零点 | 连接边对 [1, -6, 6, -3] | -1/2 | {'0': ['1/7', '0'], '1': ['1', '1/2'], '2': ['1/3', '1'], '3': ['0', '1/4']} | [[0, 3], [1, 2]] [9, -9, 7, -1] | 3/2 | {'0': ['1/2', '0'], '1': ['1', '9/16'], '2': ['1/8', '1'], '3': ['0', '9/10']} | [[0, 1], [2, 3]] [2, 2, 7, -4] | 7/4 | {'2': ['4/11', '1'], '3': ['0', '1/3']} | [[2, 3]] [4, -9, -2, 1] | -3/2 | {'0': ['4/13', '0'], '2': ['1/3', '1']} | [[0, 2]] [-7, -7, 2, -1] | -13/4 | {'1': ['1', '7/9'], '2': ['1/3', '1']} | [[1, 2]] [-4, 7, 4, 7] | 7/2 | {'0': ['4/11', '0'], '3': ['0', '4/11']} | [[0, 3]] [-4, 7, 9, 2] | 7/2 | {'0': ['4/11', '0'], '3': ['0', '2/3']} | [[0, 3]] [-7, 1, -9, -7] | -11/2 | {'0': ['7/8', '0'], '1': ['1', '1/10']} | [[0, 1]]阅读记录时先确认编号代表的是格子、对象、时间还是数组位置,再逐项对应输入与输出。中间状态提供了定位差异的依据,最后的一个合计数字不能替代全部步骤;没有对象的集合与数值零也应区别看待。
怎样检查这个结果
输入角值全部非零,避免端点恰好在线上的特殊情况。每个交点必须位于相应边上且插值值为零;四交点时形成两段连接,每个交点恰好使用一次,中心平均值为零按正号处理。
这是一个明确约定的简化等值线构造,不宣称完全复原格子内部的真实曲线,也不把中心平均规则当作所有软件的通用实现。相邻格共享的边应使用相同端点和插值规则,才能避免边界裂缝。
可以遮住结果表先按规则复算第一步,再选择一个边界输入重复操作。若更换规则中的任一前提,应重新推导结果,不要只调整最后答案。这样既能理解本例为何成立,也能看清它在哪些情况下不再适用。